const OSS = require("ali-oss")
const path = require("path")
const { Buffer } = require("buffer")
const {randomFileName} = require("@/zy-common/utils")

const config = {
    region: 'oss-cn-hongkong',
    accessKeyId: 'LTAI5tAzf1q9UNxZ2nhc6584',
    accessKeySecret: 'nLINLJ8nmrDxgNpSumt3q0PUjpZTRe',
    bucket:'g-q'
}

const client = new OSS(config)

const headers = {
    // 指定该Object被下载时网页的缓存行为。
    // 'Cache-Control': 'no-cache', 
    // 指定该Object被下载时的名称。
    // 'Content-Disposition': 'oss_download.txt', 
    // 指定该Object被下载时的内容编码格式。
    // 'Content-Encoding': 'UTF-8', 
    // 指定过期时间。
    // 'Expires': 'Wed, 08 Jul 2022 16:57:01 GMT', 
    // 指定Object的存储类型。
    // 'x-oss-storage-class': 'Standard', 
    // 指定Object的访问权限。
    // 'x-oss-object-acl': 'private', 
    // 设置Object的标签，可同时设置多个标签。
    // 'x-oss-tagging': 'Tag1=1&Tag2=2', 
    // 指定CopyObject操作时是否覆盖同名目标Object。此处设置为true，表示禁止覆盖同名Object。
    // 'x-oss-forbid-overwrite': 'true', 
  };


  async function list () {
    // 不带任何参数，默认最多返回100个文件。
    let result = await client.list();
    console.log(result);
}



  
  async function ossPut (fileName,originFileUrl,ossFile = '') {
    try {
        // console.log("path.normalize(imageUrl)",path.normalize(imageUrl));
      // 填写OSS文件完整路径和本地文件的完整路径。OSS文件完整路径中不能包含Bucket名称。
      // 如果本地文件的完整路径中未指定本地路径，则默认从示例程序所属项目对应本地路径中上传文件。
      if(typeof originFileUrl === 'string') {
        originFileUrl = path.normalize(originFileUrl)
      }

      //这里只做简单上传先
      if(originFileUrl instanceof Buffer){
        fileName = randomFileName(path.extname(fileName))
      }
      return await client.put(`zy/${ossFile}/`+fileName, originFileUrl)
    } catch (e) {
      console.log("oss报错",e);
    }
  }

module.exports = {
    ossPut
}